场景
在做公司食谱编辑的时候,涉及到表头的编辑,使用的是 contenteditable
属性,但是在让他自动聚焦的时候出现了问题,光标出现在了最前面。
查阅了资料后,解决,实际效果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22function set_focus(el)
{
//el=el[0]; //jquery 对象转dom对象
el.focus();
if($.support.msie)
{
var range = document.selection.createRange();
this.last = range;
range.moveToElementText(el);
range.select();
document.selection.empty(); //取消选中
}
else
{
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
}
参考资料
Set focus on div contenteditable element
Set cursor position on contentEditable
可编辑div将光标放在最后